package card;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

//创建一副牌
public class Cardom {
    //此处不分大小王，故只有52张牌  J Q K用11 12 13替代
    List<Card> cardList=new ArrayList<>();
    private String[] col={"♥","♠","♦","♣"};//CW不知道可以定义一个数组存放"♥","♠","♦","♣"
    public List<Card> buyCard(){//CW直接就在Cardom里面写了，不知道还要定义一个方法
        for(int i=1;i<=13;i++){
            for(int j=0;j<4;j++){
                Card card=new Card(i,col[j]);//Card card=new Card(i,col);写法错误，col传的是整个数组的地址
                //cardList.add(col);//cw不知道怎么放牌进去
                cardList.add(card);
            }
        }
        return cardList;
    }



public List<Card> shuffleCard(){
    Random ran=new Random();
    for(int i=cardList.size()-1;i>0;i--){
        int k=ran.nextInt(i);
        swap(cardList,i,k);
    }
    return cardList;
}
//两种方法，区别？


//    public void shuffleCard(List<Card> cardList){
//        Random ran=new Random();
//        for(int i=cardList.size()-1;i>0;i--){
//            int k=ran.nextInt(i);
//            swap(cardList,i,k);
//        }
//    }

    public void swap(List<Card> cardList,int a,int b){//再加一个参数
        Card B=cardList.get(a);
        Card C=cardList.get(b);
        cardList.set(a,C);
        cardList.set(b,B);
    }


    //发给三个用户

    List<Card> hand1=new ArrayList<>();
    List<Card> hand2=new ArrayList<>();
    List<Card> hand3=new ArrayList<>();//尽量不要这样写

    public void getCard(List<Card> cardList){
        List<Card> hand1=new ArrayList<>();
        List<Card> hand2=new ArrayList<>();
        List<Card> hand3=new ArrayList<>();
            for(int j=0;j<5;j++){
                hand1.add(j,cardList.remove(j));
                hand2.add(j,cardList.remove(j));
                hand3.add(j,cardList.remove(j));
        }
        System.out.println("第一个人的牌如下： ");
        System.out.println(hand1);
        System.out.println("第二个人的牌如下： ");
        System.out.println(hand2);
        System.out.println("第三个人的牌如下： ");
        System.out.println(hand3);

    }
}
//public void getCard(List<Card> cardList) {
//    List<Card> hand1 = new ArrayList<>();
//    List<Card> hand2 = new ArrayList<>();
//    List<Card> hand3 = new ArrayList<>();
//
//    List<List<Card>> hands = new ArrayList<>();
//    hands.add(hand1);
//    hands.add(hand2);
//    hands.add(hand3);
//
//    //3个人 轮流抓牌5张
//    for (int i = 0; i < 5; i++) {
//        //j代表人
//        for (int j = 0; j < 3; j++) {
//            Card card = cardList.remove(0);
//            hands.get(j).add(card);
//        }
//    }
//    System.out.println("第一个人的牌如下： ");
//    System.out.println(hand1);
//    System.out.println("第二个人的牌如下： ");
//    System.out.println(hand2);
//    System.out.println("第三个人的牌如下： ");
//    System.out.println(hand3);
//}
//}
















